﻿
using System;
using System.ServiceModel;
using System.ServiceModel.Web;

namespace EnterpriseServices.Service
{

	/// <summary>
	/// 
	/// </summary>
	[ServiceContract(Name = "ApplicationService")]
	public interface IApplicationManager
	{

		/// <summary>
		/// Adds a new application.
		/// </summary>
		/// <param name="application">The application.</param>
		[OperationContract]
		[TransactionFlow(TransactionFlowOption.Allowed)]
		void AddApplication(string ApplicationName);

		/// <summary>
		/// Removes all users and roles from the application and deletes the application.
		/// </summary>
		/// <param name="application">The application.</param>
		[OperationContract]
		[TransactionFlow(TransactionFlowOption.Allowed)]
		void DeleteApplication(string application);

		/// <summary>
		/// Deletes all applications,and removes all users and roles from  all applications.
		/// </summary>
		[OperationContract]
		[TransactionFlow(TransactionFlowOption.Allowed)]
		void DeleteAllApplications();

		/// <summary>
		/// Returns available applications.
		/// </summary>
		/// <returns></returns>
		[OperationContract]
		[TransactionFlow(TransactionFlowOption.Allowed)]
		string[] GetApplications();
	}
}